// import com.alibaba.druid.sql.ast.SQLExpr;
// import com.alibaba.druid.sql.ast.SQLName;
// import com.alibaba.druid.sql.ast.SQLObject;
// import com.alibaba.druid.sql.ast.expr.SQLLiteralExpr;
// import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;

// import java.util.ArrayList;
// import java.util.List;
#pragma once
#include "MySqlStatementImpl.h"

class MySqlLoadXmlStatement : virtual public MySqlStatementImpl
{
public:
  BOOL_ptr lowPriority;
  BOOL_ptr concurrent;
  BOOL_ptr local;

  SQLLiteralExpr_ptr fileName;

  BOOL_ptr replicate;
  BOOL_ptr ignore;

  SQLName_ptr tableName;

  string_ptr charset;

  SQLExpr_ptr rowsIdentifiedBy;

  SQLExpr_ptr ignoreLinesNumber;

  SQLExpr_list_ptr setList;
  MySqlLoadXmlStatement();
  SHAREDOBJECT(MySqlLoadXmlStatement);
  SQLExpr_ptr getRowsIdentifiedBy();

  void setRowsIdentifiedBy(SQLExpr_ptr rowsIdentifiedBy);

  BOOL_ptr isLowPriority();

  void setLowPriority(BOOL_ptr lowPriority);

  BOOL_ptr isConcurrent();

  void setConcurrent(BOOL_ptr concurrent);

  BOOL_ptr isLocal();

  void setLocal(BOOL_ptr local);

  SQLLiteralExpr_ptr getFileName();

  void setFileName(SQLLiteralExpr_ptr fileName);

  BOOL_ptr isReplicate();

  void setReplicate(BOOL_ptr replicate);

  BOOL_ptr isIgnore();

  void setIgnore(BOOL_ptr ignore);

  SQLName_ptr getTableName();

  void setTableName(SQLName_ptr tableName);

  string_ptr getCharset();

  void setCharset(string_ptr charset);

  SQLExpr_ptr getIgnoreLinesNumber();

  void setIgnoreLinesNumber(SQLExpr_ptr ignoreLinesNumber);

  SQLExpr_list_ptr getSetList();

  void accept0(MySqlASTVisitor_ptr visitor);

  // @Override
  SQLObject_list_ptr getChildren();
};
